1、观察数据

dim(iris)  # 维度
names(iris) # 列名
str(iris) # 结构
attributes(iris) # 属性


iris[1:5,]  # 查看1-5行数据
head(iris)  # 查看前6行数据
tail(iris)  # 查看后6行数据

#检索‘Sepal.Length’（萼片长度）这个属性的前面10个数据。
iris[1:10,'Sepal.Length']
iris$Sepal.Length[1:10]  # 一般比较常用的检索方式

2、分析单个变量的分布

#每一个数值变量的分布都可以使用函数summary()
#查看，该函数可以得出变量的最小值、最大值、均值、中位数、第一和第三四分位数。

summary(iris)

#均值、中位数以及范围可以通过函数mean()、median()以及range()分别实现
#通过quantile()实现四分位数和百分位数。
quantile(iris$Sepal.Length)
# 实现10%和30%以及65%的分位数
quantile(iris$Sepal.Length,c(.1,.3,.65))

#var()查看‘Sepal.Length’的方差,用函数hist()和density()查看该属性的直方图分布和密度分布

var(iris$Sepal.Length) # 方差
hist(iris$Sepal.Length) # 直方图
plot(density(iris$Sepal.Length)) # 密度分布图

#变量的频数可以通过函数table()查看，使用pie()画饼状图或使用barplot()画条形图。

table(iris$Species)
pie(table(iris$Species))
barplot(table(iris$Species))

3、分析多元数据
#用函数cov()和cor()计算变量之间的协方差和相关系数。
cov(iris$Sepal.Length,iris$Petal.Length)
cov(iris[,1:4])
cor(iris$Sepal.Length,iris$Petal.Length)
cor(iris[,1:4])

#使用aggregate()计算每种鸢尾花的萼片长度的统计数据。
# summary这个参数表明使用的是summary()函数查看数据分布状态
aggregate(Sepal.Length ~ Species, summary, data=iris)

#使用函数boxplot()绘制箱线图也称箱须图来展示中位数、四分位数以及异常值的分布情况。
boxplot(Sepal.Length~Species, data=iris)

#使用plot()函数可以绘制两个数值变量之间的散点图
#如果使用with()函数就不需要在变量名之前添加‘iris$’

# 参数col根据鸢尾花种类设置点的颜色，pch将种类转化为数值型设置点的形状
with(iris, plot(Sepal.Length, Sepal.Width, col=Species, pch=as.numeric(Species)))

#注：如果事先使用命令attach（iris），即可免去with直接用plot

#当点比较多的时候就会有重叠，我们可以在绘图前使用jitter()往数据中添加一些噪声点来减少数据的重叠
plot(jitter(iris$Sepal.Length), jitter(iris$Sepal.Width))

#通过函数pair()绘制散点图矩阵。
pairs(iris)

# dist()函数用来计算不同鸢尾花数据的相似度
distMatrix <- as.matrix(dist(iris[,1:4]))

4、将图标保存到文件
#下面的例子就是将图表保存为pdf文件。
#另外，可以使用函数ps()和postscript()将图片保存为ps文件
#使用bmp()、jpeg()、png()以及tiff()可以保存为对应的图片格式文件。
#注意画完图以后需要使用函数graphics.off()或者dev.off()关闭画图设备。

# 创建一个myPlot.pdf文件，并在里面画图，画完图后关闭图片设备
pdf("myPlot.pdf")
x <- 1:50
plot(x, log(x))
graphics.off()